sparse table
区間最小、区間maxを素早く求められるデータ構造
構築にO(NlogN)、クエリにO(1)で答えられる。基本的に
結合則(順番入れ替え)と
冪等性(何回やっても結果が変わらない)
が成り立てばいける(らしい)。なのでmaxとかminで使われることが多い。
お気持ちとしては
先にtable[i][k] // i番目から2^k個見た時のminとかmaxをNlogNで計算しておいたら、
query(20,100)とかが来てもtable[20][6] // 20~84 とtable[100-64][6] // 36~100の2つを合わせるだけで結果出るくね?というもの